#include "arbreArithmetique.h"

int main(int argc, char **argv)
{
  Arbre *arbre = NULL;
  Arbre *arbre2 = NULL;
  Arbre *arbre3 = NULL;
  Arbre *arbre4 = NULL;
  Arbre *arbre5 = NULL;
  Arbre *arbre6 = NULL;
  char *exp = NULL;
  initArbreVide(&arbre);
  initArbreCopie(&arbre2, arbre);
  detruireArbre(&arbre);
  detruireArbre(&arbre2);

  initArbreEntier(&arbre, 5);
  initArbreCopie(&arbre2, arbre);
  detruireArbre(&arbre);
  detruireArbre(&arbre2);


  initArbreChar(&arbre, "Salut");
  initArbreCopie(&arbre2, arbre);
  detruireArbre(&arbre2);  
  detruireArbre(&arbre);
  
  initArbreEntier(&arbre, 5);
  initArbreEntier(&arbre2, 6);
  initArbreEntier(&arbre4, 7);
  initArbreEntier(&arbre5, 8);
  
  additionArbres(arbre, arbre2, &arbre3);
  printf("Valeur 5 + 6 : %d\n", valeurArbre(arbre3));
  additionArbres(arbre4, arbre5, &arbre6);
  detruireArbre(&arbre5);
  printf("Valeur 7 + 8 : %d\n", valeurArbre(arbre6));
  detruireArbre(&arbre4);
  additionArbres(arbre3, arbre6, &arbre4);
  printf("Valeur 5 + 6 + 7 + 8 : %d\n", valeurArbre(arbre4));
  detruireArbre(&arbre4);
  detruireArbre(&arbre6);
  initArbreCopie(&arbre4, arbre3);

  detruireArbre(&arbre3);
  detruireArbre(&arbre);
  detruireArbre(&arbre2);

  detruireArbre(&arbre4);

  parseArbre(&arbre4, " 4 * ( ( 56 - 6 ) / ( 35 - 1 ) ) - 12 - ( 45 * 3 - 15 / 2 ) / 5 + 25 - ( 34 + 8 ) / 2");
  
  afficheArbre(&arbre4);
  
  printf("Valeur ");
  afficheArbreExpression(arbre4);
  printf(" : %d\n", valeurArbre(arbre4));
  printf("L'arbre :\n");
  /*
  afficheArbre(arbre4);
  */
  detruireArbre(&arbre4);
  
  return 0;
}
